<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Adapters - Zend Framework Manual</title>

    <link href="../css/shCore.css" rel="stylesheet" type="text/css" />
    <link href="../css/shThemeDefault.css" rel="stylesheet" type="text/css" />
    <link href="../css/styles.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Zend Framework</h1>
<h2>Programmer's Reference Guide</h2>
<ul>
    <li><a href="../en/zend.queue.adapters.html">Inglês (English)</a></li>
    <li><a href="../pt-br/zend.queue.adapters.html">Português Brasileiro (Brazilian Portuguese)</a></li>
</ul>
<table width="100%">
    <tr valign="top">
        <td width="85%">
            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.queue.framework.html">Framework</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.queue.html">Zend_Queue</a></span><br />
                        <span class="home"><a href="manual.html">Programmer's Reference Guide</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.queue.custom.html">Customizing Zend_Queue</a></div>
                    </td>
                </tr>
            </table>
<hr />
<div id="zend.queue.adapters" class="section"><div class="info"><h1 class="title">Adapters</h1></div>
    

    <p class="para">
        <span class="classname">Zend_Queue</span> supports all queues implementing the
        interface <span class="classname">Zend_Queue_Adapter_AdapterInterface</span>.
        The following Message Queue services are supported:
    </p>

    <ul class="itemizedlist">
        <li class="listitem">
            <p class="para">
                <a href="http://activemq.apache.org/" class="link external">&raquo; Apache ActiveMQ</a>.
            </p>
        </li>

        <li class="listitem">
            <p class="para">
                A database driven queue via <span class="classname">Zend_Db</span>.
            </p>
        </li>

        <li class="listitem">
            <p class="para">
                A <a href="http://memcachedb.org/memcacheq/" class="link external">&raquo; MemcacheQ</a>
                queue driven via <span class="classname">Memcache</span>.
            </p>
        </li>

        <li class="listitem">
            <p class="para">
                <a href="http://www.zend.com/en/products/platform/" class="link external">&raquo; Zend Platform&#039;s</a> Job
                Queue.
            </p>
        </li>

        <li class="listitem">
            <p class="para">
                A local array. Useful for unit testing.
            </p>
        </li>
    </ul>

    <blockquote class="note"><p><b class="note">Note</b>: <span class="info"><b>Limitations</b><br /></span>
        

        <p class="para">
            Message transaction handling is not supported.
        </p>
    </p></blockquote>

    <div class="section" id="zend.queue.adapters.configuration"><div class="info"><h1 class="title">Specific Adapters - Configuration settings</h1></div>
        

        <p class="para">
            If a default setting is indicated then the parameter is optional.
            If a default setting is not specified then the parameter is
            required.
        </p>

        <div class="section" id="zend.queue.adapters.configuration.activemq"><div class="info"><h1 class="title">Apache ActiveMQ - Zend_Queue_Adapter_Activemq</h1></div>
            

            <p class="para">
                Options listed here are known requirements. Not all
                messaging servers require username or password.
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;name&#039;] = &#039;/temp/queue1&#039;;</em>
                    </p>

                    <p class="para">
                        This is the name of the queue that you wish to start
                        using. (Required)
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;host&#039;] = &#039;host.domain.tld&#039;;</em>
                    </p>

                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;host&#039;] = &#039;127.0.0.1&#039;;</em>
                    </p>

                    <p class="para">
                        You may set host to an IP address or a hostname.
                    </p>

                    <p class="para">
                        Default setting for host is &#039;127.0.0.1&#039;.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;port&#039;] = 61613;</em>
                    </p>

                    <p class="para">Default setting for port is 61613.</p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;username&#039;] = &#039;username&#039;;</em>
                    </p>

                    <p class="para">
                        Optional for some messaging servers. Read the manual
                        for your messaging server.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;password&#039;] = &#039;password&#039;;</em>
                    </p>

                    <p class="para">
                        Optional for some messaging servers. Read the manual
                        for your messaging server.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;timeout_sec&#039;] = 2;</em>
                    </p>

                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;timeout_usec&#039;] = 0;</em>
                    </p>

                    <p class="para">
                        This is the amount of time that
                        <span class="classname">Zend_Queue_Adapter_Activemq</span> will wait for
                        read activity on a socket before returning no messages.
                    </p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.configuration.Db"><div class="info"><h1 class="title">Db - Zend_Queue_Adapter_Db</h1></div>
            

            <p class="para">
                Driver options are checked for a few required options such
                as <em class="emphasis">type</em>, <em class="emphasis">host</em>,
                <em class="emphasis">username</em>, <em class="emphasis">password</em>,
                and <em class="emphasis">dbname</em>. You may pass along
                additional parameters for  <span class="methodname">Zend_DB::factory()</span> as parameters
                in <var class="varname">$options[&#039;driverOptions&#039;]</var>. An example of an additional
                option not listed here, but could be passed would be <em class="emphasis">port</em>.
            </p>

            <pre class="programlisting brush: php">
$options = array(
    &#039;driverOptions&#039; =&gt; array(
        &#039;host&#039;      =&gt; &#039;db1.domain.tld&#039;,
        &#039;username&#039;  =&gt; &#039;my_username&#039;,
        &#039;password&#039;  =&gt; &#039;my_password&#039;,
        &#039;dbname&#039;    =&gt; &#039;messaging&#039;,
        &#039;type&#039;      =&gt; &#039;pdo_mysql&#039;,
        &#039;port&#039;      =&gt; 3306, // optional parameter.
    ),
    &#039;options&#039; =&gt; array(
        // use Zend_Db_Select for update, not all databases can support this
        // feature.
        Zend_Db_Select::FOR_UPDATE =&gt; true
    )
);

// Create a database queue.
$queue = new Zend_Queue(&#039;Db&#039;, $options);
</pre>


            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;name&#039;] = &#039;queue1&#039;;</em>
                    </p>

                    <p class="para">
                        This is the name of the queue that you wish to start using. (Required)
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;type&#039;] = &#039;Pdo&#039;;</em>
                    </p>

                    <p class="para">
                        <em class="emphasis">type</em> is the adapter you wish to have
                         <span class="methodname">Zend_Db::factory()</span> use. This is
                        the first parameter for the
                         <span class="methodname">Zend_Db::factory()</span> class
                        method call.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;host&#039;] = &#039;host.domain.tld&#039;;</em>
                    </p>

                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;host&#039;] = &#039;127.0.0.1&#039;;</em>
                    </p>

                    <p class="para">You may set host to an IP address or a hostname.</p>

                    <p class="para">Default setting for host is &#039;127.0.0.1&#039;.</p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;username&#039;] = &#039;username&#039;;</em>
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;password&#039;] = &#039;password&#039;;</em>
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;dbname&#039;] = &#039;dbname&#039;;</em>
                    </p>

                    <p class="para">
                        The database name that you have created the required tables for.
                        See the notes section below.
                    </p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.configuration.memcacheq"><div class="info"><h1 class="title">MemcacheQ - Zend_Queue_Adapter_Memcacheq</h1></div>
            

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;name&#039;] = &#039;queue1&#039;;</em>
                    </p>

                    <p class="para">
                        This is the name of the queue that you wish to start using. (Required)
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;host&#039;] = &#039;host.domain.tld&#039;;</em>
                    </p>

                    <p class="para">
                         <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;host&#039;] = &#039;127.0.0.1;&#039;</em>
                    </p>

                    <p class="para">You may set host to an IP address or a hostname.</p>

                    <p class="para">Default setting for host is &#039;127.0.0.1&#039;.</p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <em class="emphasis">$options[&#039;driverOptions&#039;][&#039;port&#039;] = 22201;</em>
                    </p>

                    <p class="para">The default setting for port is 22201.</p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.configuration.platformjq"><div class="info"><h1 class="title">Zend Platform Job Queue - Zend_Queue_Adapter_PlatformJobQueue</h1></div>
            

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;daemonOptions&#039;][&#039;host&#039;] = &#039;127.0.0.1:10003&#039;;</em>
                    </p>

                    <p class="para">
                        The hostname and port corresponding to the Zend Platform Job Queue daemon
                        you will use. (Required)
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;daemonOptions&#039;][&#039;password&#039;] = &#039;1234&#039;;</em>
                    </p>

                    <p class="para">
                        The password required for accessing the Zend Platform Job Queue daemon.
                        (Required)
                    </p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.configuration.array"><div class="info"><h1 class="title">Array - Zend_Queue_Adapter_Array</h1></div>
            

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <em class="emphasis">$options[&#039;name&#039;] = &#039;queue1&#039;;</em>
                    </p>

                    <p class="para">
                        This is the name of the queue that you wish to start using. (Required)
                    </p>
                </li>
            </ul>
        </div>
    </div>

    <div class="section" id="zend.queue.adapters.notes"><div class="info"><h1 class="title">Notes for Specific Adapters</h1></div>
        

        <p class="para">The following adapters have notes:</p>

        <div class="section" id="zend.queue.adapters.notes.activemq"><div class="info"><h1 class="title">Apache ActiveMQ</h1></div>
            

            <p class="para">
                Visibility duration for
                <span class="classname">Zend_Queue_Adapter_Activemq</span> is not
                available.
            </p>

            <p class="para">
                While Apache&#039;s ActiveMQ will support multiple subscriptions, the
                <span class="classname">Zend_Queue</span> does not. You must create a
                new <span class="classname">Zend_Queue</span> object for each individual
                subscription.
            </p>

            <p class="para">
                ActiveMQ queue/topic names must begin with one of:
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                        <var class="filename">/queue/</var>
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <var class="filename">/topic/</var>
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <var class="filename">/temp-queue/</var>
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                        <var class="filename">/temp-topic/</var>
                    </p>
                </li>
            </ul>

            <p class="para">
                For example: <var class="filename">/queue/testing</var>
            </p>

            <p class="para">
                The following functions are not supported:
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                          <span class="methodname">create()</span> - create queue.
                         Calling this function will throw an exception.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">delete()</span> - delete queue.
                        Calling this function will throw an exception.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">getQueues()</span> - list queues.
                        Calling this function will throw an exception.
                    </p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.notes.zend_db"><div class="info"><h1 class="title">Zend_Db</h1></div>
            

            <p class="para">
                The database <em class="emphasis">CREATE TABLE ( ... )</em> <acronym class="acronym">SQL</acronym>
                statement can be found in <var class="filename">Zend/Queue/Adapter/Db/mysql.sql</var>.
            </p>
        </div>

        <div class="section" id="zend.queue.adapters.notes.memcacheQ"><div class="info"><h1 class="title">MemcacheQ</h1></div>
            

            <p class="para">
                Memcache can be downloaded from <a href="http://www.danga.com/memcached/" class="link external">&raquo; http://www.danga.com/memcached/</a>.
            </p>

            <p class="para">
                MemcacheQ can be downloaded from <a href="http://memcachedb.org/memcacheq/" class="link external">&raquo; http://memcachedb.org/memcacheq/</a>.
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <span class="methodname">deleteMessage()</span> - Messages are deleted upon
                        reception from the queue. Calling this function would
                        have no effect. Calling this function will throw an
                        error.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">count()</span> or  <span class="methodname">count($adapter)</span>
                        - MemcacheQ does not support a method for counting the number of items in
                        a queue. Calling this function will throw an error.
                    </p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.notes.platformjq"><div class="info"><h1 class="title">Zend Platform Job Queue</h1></div>
            

            <p class="para">
                Job Queue is a feature of Zend Platform&#039;s Enterprise Solution offering. It is not a
                traditional message queue, and instead allows you to queue a script to execute,
                along with the parameters you wish to pass to it. You can find out more about Job
                Queue <a href="http://www.zend.com/en/products/platform/" class="link external">&raquo; on the zend.com
                    website</a>.
            </p>

            <p class="para">
                The following is a list of methods where this adapter&#039;s behavior diverges from the
                standard offerings:
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">
                         <span class="methodname">create()</span> - Zend Platform does not have the concept
                        of discrete queues; instead, it allows administrators to provide scripts for
                        processing jobs. Since adding new scripts is restricted to the
                        administration interface, this method simply throws an exception indicating
                        the action is forbidden.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">isExists()</span> - Just like
                         <span class="methodname">create()</span>, since Job Queue does not have a notion of
                        named queues, this method throws an exception when invoked.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">delete()</span> - similar to
                         <span class="methodname">create()</span>, deletion of JQ scripts is not possible
                        except via the admin interface; this method raises an exception.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">getQueues()</span> - Zend Platform does not allow
                        introspection into the attached job handling scripts via the
                        <acronym class="acronym">API</acronym>. This method throws an exception.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">count()</span> - returns the total number of jobs
                        currently active in the Job Queue.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">send()</span> - this method is perhaps the one method that
                        diverges most from other adapters. The <var class="varname">$message</var> argument
                        may be one of three possible types, and will operate differently based on
                        the value passed:
                    </p>

                    <ul class="itemizedlist">
                        <li class="listitem">
                            <p class="para">
                                <acronym class="acronym">string</acronym> - the name of a script registered with Job
                                Queue to invoke. If passed in this way, no arguments are provided to
                                the script.
                            </p>
                        </li>

                        <li class="listitem">
                            <p class="para">
                                <acronym class="acronym">array</acronym> - an array of values with which to
                                configure a <span class="classname">ZendApi_Job</span> object. These may
                                include the following:
                            </p>

                            <ul class="itemizedlist">
                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">script</var> - the name of the Job Queue script
                                        to invoke. (Required)
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">priority</var> - the job priority to use when
                                        registering with the queue.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">name</var> - a short string describing the job.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">predecessor</var> - the ID of a job on which
                                        this one depends, and which must be executed before this one
                                        may begin.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">preserved</var> - whether or not to retain the
                                        job within the Job Queue history. By default, off; pass a
                                        <b><tt>TRUE</tt></b> value to retain it.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">user_variables</var> - an associative array of
                                        all variables you wish to have in scope during job execution
                                        (similar to named arguments).
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">interval</var> - how often, in seconds, the job
                                        should run. By default, this is set to 0, indicating it
                                        should run once, and once only.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">end_time</var> - an expiry time, past which the
                                        job should not run. If the job was set to run only once,
                                        and <var class="varname">end_time</var> has passed, then the job
                                        will not be executed. If the job was set to run on an
                                        interval, it will not execute again once
                                        <var class="varname">end_time</var> has passed.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">schedule_time</var> - a <acronym class="acronym">UNIX</acronym>
                                        timestamp indicating when to run the job; by default, 0,
                                        indicating the job should run as soon as possible.
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <var class="varname">application_id</var> - the application
                                        identifier of the job. By default, this is
                                        <b><tt>NULL</tt></b>, indicating that one will be
                                        automatically assigned by the queue, if the queue was
                                        assigned an application ID.
                                    </p>
                                </li>
                            </ul>

                            <p class="para">
                                As noted, only the <var class="varname">script</var> argument is required;
                                all others are simply available to allow passing more fine-grained
                                detail on how and when to run the job.
                            </p>
                        </li>

                        <li class="listitem">
                            <p class="para">
                                <span class="classname">ZendApi_Job</span> - finally, you may simply pass a
                                <span class="classname">ZendApi_Job</span> instance, and it will be passed
                                along to Platform&#039;s Job Queue.
                            </p>
                        </li>
                    </ul>

                    <p class="para">
                        In all instances,  <span class="methodname">send()</span> returns a
                        <span class="classname">Zend_Queue_Message_PlatformJob</span> object, which provides
                        access to the <span class="classname">ZendApi_Job</span> object used to communicate
                        with Job Queue.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">receive()</span> - retrieves a list of active jobs from
                        Job Queue. Each job in the returned set will be an instance of
                        <span class="classname">Zend_Queue_Message_PlatformJob</span>.
                    </p>
                </li>

                <li class="listitem">
                    <p class="para">
                         <span class="methodname">deleteMessage()</span> - since this adapter only works
                        with Job Queue, this method expects the provided <var class="varname">$message</var>
                        to be a <span class="classname">Zend_Queue_Message_PlatformJob</span> instance, and
                        will throw an exception otherwise.
                    </p>
                </li>
            </ul>
        </div>

        <div class="section" id="zend.queue.adapters.notes.array"><div class="info"><h1 class="title">Array (local)</h1></div>
            

            <p class="para">
                The Array queue is a <acronym class="acronym">PHP</acronym>  <span class="methodname">array()</span>
                in local memory. The <span class="classname">Zend_Queue_Adapter_Array</span> is good for
                unit testing.
            </p>
        </div>
    </div>
</div>
        <hr />

            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.queue.framework.html">Framework</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.queue.html">Zend_Queue</a></span><br />
                        <span class="home"><a href="manual.html">Programmer's Reference Guide</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.queue.custom.html">Customizing Zend_Queue</a></div>
                    </td>
                </tr>
            </table>
</td>
        <td style="font-size: smaller;" width="15%"> <style type="text/css">
#leftbar {
	float: left;
	width: 186px;
	padding: 5px;
	font-size: smaller;
}
ul.toc {
	margin: 0px 5px 5px 5px;
	padding: 0px;
}
ul.toc li {
	font-size: 85%;
	margin: 1px 0 1px 1px;
	padding: 1px 0 1px 11px;
	list-style-type: none;
	background-repeat: no-repeat;
	background-position: center left;
}
ul.toc li.header {
	font-size: 115%;
	padding: 5px 0px 5px 11px;
	border-bottom: 1px solid #cccccc;
	margin-bottom: 5px;
}
ul.toc li.active {
	font-weight: bold;
}
ul.toc li a {
	text-decoration: none;
}
ul.toc li a:hover {
	text-decoration: underline;
}
</style>
 <ul class="toc">
  <li class="header home"><a href="manual.html">Programmer's Reference Guide</a></li>
  <li class="header up"><a href="manual.html">Programmer's Reference Guide</a></li>
  <li class="header up"><a href="reference.html">Zend Framework Reference</a></li>
  <li class="header up"><a href="zend.queue.html">Zend_Queue</a></li>
  <li><a href="zend.queue.introduction.html">Introduction</a></li>
  <li><a href="zend.queue.example.html">Example usage</a></li>
  <li><a href="zend.queue.framework.html">Framework</a></li>
  <li class="active"><a href="zend.queue.adapters.html">Adapters</a></li>
  <li><a href="zend.queue.custom.html">Customizing Zend_Queue</a></li>
  <li><a href="zend.queue.stomp.html">Stomp</a></li>
 </ul>
 </td>
    </tr>
</table>

<script type="text/javascript" src="../js/shCore.js"></script>
<script type="text/javascript" src="../js/shAutoloader.js"></script>
<script type="text/javascript" src="../js/main.js"></script>

</body>
</html>